package com.wyl.dao

import com.wyl.pojo.User
import com.wyl.utils.getSqlSession
import org.junit.Test

class UserMapperTest {
    @Test
    fun testGetUserList() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            println(mapper.getUserList())
            //不推荐方法
//            println(it.selectList<User>("com.wyl.dao.userMapper.getUserList"))
        }
    }

    @Test
    fun testGetUserById() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            println(mapper.getUserById(1))
        }
    }

    @Test
    fun testGetUserLike() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            mapper.getUserLike("小%").forEach(::println)
        }
    }

    @Test
    fun testAddUser() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            println(mapper.addUser(User(5, "花卷", "444444")))
            //提交事务
            it.commit()
        }
    }

    @Test
    fun testAddUser2() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            println(
                mapper.addUser2(
                    mapOf(
                        "userId" to "6",
                        "username" to "Hello",
                        "password" to "223344"
                    )
                )
            )
            //提交事务
            it.commit()
        }
    }

    @Test
    fun testUpdateUser() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            println(mapper.updateUser(User(4, "呵呵", "123456")))
            it.commit()
        }
    }

    @Test
    fun updateUserName() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            println(mapper.updateUserName(User(6, "土豆")))
            it.commit()
        }
    }

    @Test
    fun testDeleteUser() {
        getSqlSession().use {
            val mapper = it.getMapper(UserMapper::class.java)
            println(mapper.deleteUser(4))
            it.commit()
        }
    }
}